This invention relates to telecommunications devices, and in particular to synchronisation of outputs to multiple audio terminals.
In systems designed for use in the financial services industry it is common practice to provide a telecommunications terminal or “turret” for each user, which includes a loudspeaker output. The users, in addition to calls on handset, may listen to a number of conversations on handsfree speakers, with the ability to talkback to any one or more speaker conversations.
If several terminals on the same trading floor are connected to the same audio channel, multiple outputs of that channel will be audible. In a conventional trading system, using standard Time Domain Multiplexed (TDM) Telephony, an accurate frequency is available from the incoming TDM clock and all terminals have their audio play-out synchronised to this common clock source. Consequently any lag between the outputs will be relatively small and, more importantly, constant, and will be perceived as an echo.
However, in modern packet-switched telephony systems, the individual terminals have no such common frequency reference. Their speakers, handsets and video are driven by Real-time Transport Protocol (RTP) Internet packet streams from diverse sources. In such systems, audio from a common source is transmitted through an asynchronous network to multiple termination points. As they are asynchronous, they each have an autonomous clock frequency. Because of their unsynchronised clock frequencies, the individual terminals therefore do not output the audio signal at the same rate. Consequently, the delay between different outputs will not be constant, and, in particular, the playout from each terminal will be controlled according to its own internal clock. This will cause playouts from different terminals to run at different rates, causing an echo effect with a variable delay. Such a variable delay is perceptually distracting as such a phenomenon does not occur in a normal acoustic environment.
The terminal audio play-out buffers would have different depths during a call, which would cause a differential audio delay. When the terminals are all playing the same audio, with different delays on their speakers, this can give a disturbing ‘stadium’ echo effect.
It is therefore desirable to synchronise the outputs.
Prior art approaches, such as that described in WO05/002100 (Philips), WO2006/110960 (NAT ICT), US20091298420 (Haartsen), US2008/259966 (Baird), and WO2011/000041 (Avega) use a regular time stamp to ensure absolute synchronicity, which is not a practical approach in a packet system where there are significant and variable delays in the transmission of signals, including the timestamp itself, to the terminals. They also require a significant signalling overhead.
However, absolute synchronicity is not required in the present context the acoustic path differences between the various individual audio outputs and the various human listeners make this impossible to achieve in any case. It is nevertheless desirable that the various outputs all run at the same speed in other words to arrange that any delay that does exist between one audio output and another is constant, but not necessarily zero. The present invention provides a convenient way of achieving this without requiring a major signalling overhead
According to the invention, there is provided a method of controlling a telecommunications terminal in a packet switched system, wherein
the terminal transmits to a server a rate-indication signal indicative of the rate at which it generates an audio output,
the server determines an offset value by comparison of the rate-indication signal received from the terminal with a rate set by the server,
the server transmits the offset value to the terminal,
and the terminal applies the offset value to its audio output so that the rate at which the output is generated becomes synchronised to the rate set by the server.
In one embodiment, the terminal has an internal clock having a predetermined clocking value, and the method comprises the steps of:
generating, at the terminal, a stream of packets of a duration determined according to the clocking value;
transmitting the stream of packets over the packet switched system to a server having a master clock;
at the server, determining the duration of the stream of packets according to the master clock; calculating an offset value indicative of the difference between the duration of the stream determined by the terminal clock and the duration as determined by the master clock;
transmitting the offset value to the terminal;
adjusting the clocking value of the terminal by applying the offset value received from the server;
operating packet handling functions of the terminal according to the adjusted clocking value.
In an alternative embodiment, the terminal having an internal clock having a predetermined clocking value, and a data buffer, and the method comprises the steps of:
generating, at the terminal, a signal indicative of the buffer depth,
transmitting the buffer depth signal to the server;
at the server, calculating an offset value indicative of the difference between the actual buffer depth and an optimum buffer depth determined by the server;
transmitting the offset value to the terminal;
adjusting the clocking value of the terminal by the offset value;
operating packet handling functions of the terminal according to the adjusted clocking value.
The invention also extends to a telecommunications terminal for connection to a packet switched system, the terminal comprising
an internal clock having a predetermined clocking value
a signal generator for generating a rate-indication signal indicative of the rate at which the terminal generates an audio output,
a transmitter for transmitting the rate-indication signal to a server
a receiver for receiving an offset value from the server;
and a clock adjustment processor for adjusting the clocking value of the terminal according to the offset value.
The invention also provides a complementary server for connection to a packet switched telecommunications system for controlling one or more telecommunications terminals connected to the system, the server comprising:
a master clock;
a receiver for receiving a rate-indication signal from each terminal indicative of the rate at which each respective terminal generates an audio output,
a processor for calculating, for each terminal, a respective offset value derived from the rate-indication signal received from the terminal,
and a transmitter for transmitting the offset values to the respective terminals.
The server may comprise a program store for storing program data for configuring one or more of the terminals to operate according to the invention, being configured to identify one or more terminals to be synchronised, and to transmit the program data to the terminals so identified, together with address data specific to the server such that the terminals can transmit packet streams to the server.
Preferably the process of the invention is repeated at intervals to maintain the clocking value within a predetermined limit from the master clock value. These intervals may be selected according to the amount of drift in clocking value determined in previous iterations, thereby reducing signalling overhead when the value is stable.
The invention is intended for use in applications wherein the packet handling functions controlled by the internal clocks of the terminals include the generation of an audio signal from a packet stream. This allows the rate at which audio signals are generated by the terminals to be synchronised to the master clock and therefore with each other.
Thus individual client terminals can transmit sample outputs to a clocking server having a centralised clock source, and the server determines, from the output from each terminal, an offset value which it returns to the respective terminal, such that the terminal may apply the offset value so that its output rate becomes synchronised to the centralised clock source.